Run the ioxide.e2e suite in the build workflow#89
Merged
Conversation
Add postgres + redis service containers and run Tests/ioxide.e2e (already built as part of ioxide.slnx) after the build, before pack/publish, so a failing test blocks the release. The suite exits non-zero on failure and drives real reactors over real sockets; pg/redis/kTLS tests use the sidecars + tls module and skip cleanly if absent. Verified locally: 15 passed, 0 failed.
ioxide.pg/redis need an IPv4 literal, not 'localhost'. Also print the io_uring_disabled sysctl state to see whether the hosted runner allows io_uring.
… container Determine the io_uring_setup errno and whether a container can bypass the hosted-runner block, so the e2e could run in one instead of needing self-hosted.
Pinpoint which of SINGLE_ISSUER|DEFER_TASKRUN|NO_SQARRAY (or ring size) the hosted runner rejects, with the real errno per combination.
Probe accumulates 8192-entry rings at 8MB memlock vs raised; the e2e step raises RLIMIT_MEMLOCK before running (ioxide rings pin memory, many reactors exhaust 8MB).
Add postgres + redis service containers and run Tests/ioxide.e2e after the build, before pack/publish, so a failing test blocks the release. Raise RLIMIT_MEMLOCK first: io_uring rings pin locked memory (RingEntries=8192), and the runner's default 8 MB cap is exhausted after ~10 reactors. Load the tls module for the kTLS test; pg/redis/kTLS skip cleanly if absent. 15 passed, 0 failed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Runs the e2e suite (
Tests/ioxide.e2e) as part of CI.postgres:18(bench/bench, trust) +redis:7-alpineservice containerssysctl kernel.io_uring_disabled=0+modprobe tlsbefore the rundotnet run --project Tests/ioxide.e2e.csprojafter Build, before pack/publish — a non-zero exit blocks the releaseVerified locally with the sidecars + tls module: 15 passed, 0 failed, 0 skipped.